/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package controladores;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.Vector;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JTextField;

/**
 *
 * @author usuario
 */
public class ControloadorIngrediente implements  ActionListener{

    private vistas.VistaIngrediente vista;
    private modelos.ModeloIngrediente modelo;

    public ControloadorIngrediente(vistas.VistaIngrediente vista) {
        this.vista = vista;
        modelo = new modelos.ModeloIngrediente();
        vista.addListener(this);
    }

    public void actionPerformed(ActionEvent ae) {
        if(ae.getSource().equals(vista.getRegistrar())){
                registrar();

        }
        else if(ae.getSource().equals(vista.getSalir())){
            vista.setVisible(false);
            vista.reiniciar();
        }
         else if(ae.getSource().equals(vista.getActualizar())){
           actualizar();
           vista.reiniciar();
        }
         else if(ae.getSource().equals(vista.getConsultar())){
            consultar();
        }
        else{
            vista.reiniciar();
        } 
    }

    private void registrar() {
       LinkedList<JTextField> v =vista.getTextos();
        for (JTextField texto: v){if(texto.getText().equals("")){
                JOptionPane.showMessageDialog(new JFrame(),"Campos vacios","Calle el Hambre",JOptionPane.INFORMATION_MESSAGE);
                return;
            }
       }
       try{
           if(Double.parseDouble(vista.getStock().getText())<=0){
                vista.getStock().setText("");
                JOptionPane.showMessageDialog(new JFrame(),"La disponibilidad no es valida","Calle el Hambre",JOptionPane.WARNING_MESSAGE);
                return;
           }
       }catch(NumberFormatException ex){
           JOptionPane.showMessageDialog(new JFrame(),"La disponibilidad no es valida","Calle el Hambre",JOptionPane.WARNING_MESSAGE);
           return;
       }
       modelo.setID(vista.getCodigo().getText());
       modelo.setDescripcion(vista.getDescripcion().getText());
       modelo.setStatus("A");
       modelo.setStock(Float.parseFloat(vista.getStock().getText()));
       if(modelo.registar()){
           vista.reiniciar();
           JOptionPane.showMessageDialog(new JFrame(),"Ingrediente registrado exitosamente","Calle el Hambre",JOptionPane.INFORMATION_MESSAGE);
           
       }
       else
           JOptionPane.showMessageDialog(new JFrame(),"El codigo o la descripcion ya se encuentra registrada","Calle el Hambre",JOptionPane.INFORMATION_MESSAGE);
    }    

    private void actualizar() {
       LinkedList<JTextField> v =vista.getTextos();
        for (JTextField texto: v){
            if(texto.getText().equals("")){
                JOptionPane.showMessageDialog(new JFrame(),"Campos vacios","Calle el Hambre",JOptionPane.INFORMATION_MESSAGE);
                return;
            }
       }
       try{
           if(Double.parseDouble(vista.getStock().getText())<=0){
                vista.getStock().setText("");
                JOptionPane.showMessageDialog(new JFrame(),"La disponibilidad no es valida","Calle el Hambre",JOptionPane.WARNING_MESSAGE);
                return;
           }
           if(Double.parseDouble(vista.getNuevo().getText())<0){
                vista.getStock().setText("");
                JOptionPane.showMessageDialog(new JFrame(),"La cantidad comprada no es valida","Calle el Hambre",JOptionPane.WARNING_MESSAGE);
                return;
           }
       }catch(NumberFormatException ex){
           JOptionPane.showMessageDialog(new JFrame(),"Ingreso letras en vez de numeros","Calle el Hambre Aeropuerto",JOptionPane.WARNING_MESSAGE);
           return;
       }
       modelo.setID(vista.getCodigo().getText());
       modelo.setStock(Float.parseFloat(vista.getStock().getText())+Float.parseFloat(vista.getNuevo().getText()));
       if(modelo.actualizar()){
           JOptionPane.showMessageDialog(new JFrame(),"Ingrediente actualizado exitosamente","Calle el Hambre Aeropuerto",JOptionPane.INFORMATION_MESSAGE);
           vista.reiniciar();
       }
    }

    private void consultar() {
       if(vista.getCodigo().getText().equals("")){
                JOptionPane.showMessageDialog(new JFrame(),"Campos vacios","Calle el Hambre Aeropuerto",JOptionPane.INFORMATION_MESSAGE);
                return;
       }
       modelo.setID(vista.getCodigo().getText());
       if(modelo.consultar()){
           vista.getDescripcion().setText(modelo.getDescripcion());
           vista.getStock().setText(""+modelo.getStock());
           vista.mostrar();
       }
       else
           JOptionPane.showMessageDialog(new JFrame(),"EL codigo no esta registrado","Calle el Hambre Aeropuerto",JOptionPane.INFORMATION_MESSAGE);

    }

}
